/*
 * Category.h
 *
 */

#ifndef CATEGORY_H_
#define CATEGORY_H_

#include "../../persistence/ISerializable.h"

class Category : public ISerializable {
private:
	BigInt id;
	String name;
	String description;

public:
	Category();
	virtual ~Category();

	Category(BigInt id, const String& name, const String& description);
	Category(const Category& other);
	Category& operator=(const Category& other);

	BigInt getId() const { return id; }
	const String& getName() const { return name; }
	const String& getDescription() const { return description; }

	void setId(BigInt value) { id = value; }
	void setName(const String& value) { name = value; }
	void setDescription(const String& value) { description = value; }

	BigInt size() const;
	void serialize(ISerializer& serializable) const;
	void unserialize(IUnserializer& unserializer);
};

#endif /* CATEGORY_H_ */
